package chips440.tiles;

import chips440.internals.Player;
import chips440.main.Types;

/**
 * Abstracts the notion of a game tile so that they can be stored and accessed
 * in a homogenous data structure. Also includes the tile's ability to draw
 * itself.
 *
 * @author Ryan Hofler
 * @version 0.1
 */
public abstract class Tile{

    /**
     * image to be delt with by each child class
     */
    protected String image = "";

    /**
     * paint your particular tile type
     *
     * @return a String of the name of this tile's graphic
     */
    public String paintSelf(){
	return image;
    }

    /**
     * returns if it is safe for player p to step on this tile given the items
     * he holds
     *
     * @return a Types.TileAct indicating what having stepped on this tile
     * allows to happen next
     * @param p the player in question
     */
    public Types.TileAct okToStep(Player p){
        return Types.TileAct.MOVE;
    }

}
